﻿(function () {
    user = (function () {
        user = function () {
            return new user.fn.Create();
        }
        user.fn = user.prototype = {
            Selector: "",
            fn: user.fn,
            objeto: {
                Codigo: 0,
                Nome: '',
                Cpf: '',
                Rg: '',
                Sexo: '',
                DataNasc: '',
                GrupoId: 0,
                EnderecoId: 0
            },
            Create: function () {
                /// <summary>
                /// @Autor...........: Edney Batista da Silva
                /// @Data............: 23/06/2012
                /// @Descriptio......: Cria um objeto user
                /// </summary>

                var $obj = user.fn;
                $obj.objeto.Cpf = $("input[id*='Cpf']'").val();
                $obj.objeto.Nome = $("input[id*='Nome']'").val(); ;
                $obj.objeto.DataNasc = $("input[id*='DataNasc']'").val();
                tryInt = user.IntTryParse($("input[id*='UsuarioId']'").val());
                $obj.objeto.UsuarioId = tryInt;
                $obj.objeto.Rg = $("input[id*='Rg']'").val();
                return $obj;
            },
            Salvar: function () {
                /// <summary>
                /// @Autor...........: Edney Batista da Silva
                /// @Data............: 23/06/2012
                /// @Descriptio......: Salva as informações de um cliente via ajax
                /// </summary>
                strU = user.ParseJson(this);
                $.ajax({
                    url: eS.UrlPadrao + 'Views/Administrativo/Usuario.aspx/Salvar',
                    type: 'post',
                    data: strU,
                    dataType: 'json',
                    contentType: "application/json; charset=utf-8",
                    success: function (e) {
                        alert('Sucess');
                    },
                    error: function (e) {
                        alert('Falha');
                    }
                });
            }
        }
        // fn privada
        var privateFn = function () {
        }
        // fn static
        user.IntTryParse = function (value) {
            /// <summary>
            /// @Autor...........: Edney Batista da Silva
            /// @Data............: 23/06/2012
            /// @Descriptio......: Tenta converter uma string em inteiro se não conseguir retorna 0
            /// </summary>
            /// <param name="value" type="String">string a ser convertida</param>
            /// <returns type="Int" />

            try {
                intValue = parseInt(value);
                if (intValue == undefined || intValue == null || intValue == NaN)
                    return 0;
                return intValue
            } catch (ex) {
                return 0;
            }
        }

        user.FormatDate = function (value) {
            /// <summary>
            /// @Autor...........: Edney Batista da Silva
            /// @Data............: 23/06/2012
            /// @Descriptio......: Formata uma data para o formato corrente do browser para que se possa converter no servidor
            /// </summary>
            /// <returns type="String" />

            var dia = value.split("/")[0];
            var mes = value.split("/")[1];
            var ano = value.split("/")[2];
            var MyData = new Date(ano, mes - 1, dia);
            if ((MyData.getMonth() + 1 != mes) || (MyData.getDate() != dia) || (MyData.getFullYear() != ano))
                return "01/01/0001";
            return mes + "/" + dia + "/" + ano;
        }

        user.ParseJson = function (usr) {
            /// <summary>
            /// @Autor...........: Edney Batista da Silva
            /// @Data............: 23/06/2012
            /// @Descriptio......: Converte o objeto user em uma string para passar via json
            /// </summary>
            /// <returns type="String" />

            var jsonStr = '';
            usuario = usr.objeto;
            // percorre as propriedades do objeto
            for (var i in usuario) {
                // monta parte da string com as virgulas e nome da propriedade
                jsonStr += ', ' + i + ' : ';
                value = usuario[i];
                // verifica o tipo da mesma para por ou não aspas
                if (typeof value == 'string') {
                    if (i == 'DataNasc')
                        value = user.FormatDate(usuario[i]);
                    jsonStr += '"' + value + '" ';
                }
                else
                    jsonStr += "" + value;
            }
            // retorna o json
            return '{atirador:{' + jsonStr.substring(1) + '}}';
        }
        return user();
    });

    window.user = user;
    return user();
})(window);
